//
//  CZMainViewController.swift
//  微博08
//
//  Created by apple on 16/2/26.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

class CZMainViewController: UITabBarController, CZMainTabBarDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        // 只适用于tabBar图片和文字的颜色一样的
//        tabBar.tintColor = UIColor.orangeColor()
        
        // tabBar是只读的,使用KVC来赋值
//        tabBar = UITabBar()
        let mainTabBar = CZMainTabBar()
        
        // 4.设置代理
        mainTabBar.composeDelegate = self
        
        setValue(mainTabBar, forKey: "tabBar")

        addChildViewControllers()
    }
    
    // MARK: - 实现代理方法,响应按钮点击事件
    // 5.实现代理方法
    func mainTabBarComposeClick() {
        print("在 CZMainViewController 响应到了按钮的点击事件")
    }
    
    func addChildViewControllers() {
        // 首页
        let homeVC = CZHomeViewController()
        addchildViewController(homeVC, title: "首页", imageName: "tabbar_home")
        
        // 消息
        let messageVC = CZMessageViewController()
        addchildViewController(messageVC, title: "消息", imageName: "tabbar_message_center")
        
        // 占位的tabBar
        addChildViewController(UIViewController())
        
        // 发现
        let discoverVC = CZDiscoverViewController()
        addchildViewController(discoverVC, title: "发现", imageName: "tabbar_discover")
        
        // 我
        let profileVC = CZProfileViewController()
        addchildViewController(profileVC, title: "我", imageName: "tabbar_profile")
    }
    
    /**
     添加tabBar的子控制器
     
     - parameter controller: 要添加的控制器
     - parameter title:      标题
     - parameter iamgeName:  图片名称
     */
    func addchildViewController(controller: UIViewController, title: String, imageName: String) {
        // 设置title
        controller.title = title
        controller.tabBarItem.image = UIImage(named: imageName)
        
//        // 设置选中图片
        let hightedImageName = imageName + "_highlighted"
        // 设置图片不要渲染
        controller.tabBarItem.selectedImage = UIImage(named: hightedImageName)?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
        
        // 设置选中文字的颜色
        controller.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.orangeColor()], forState: UIControlState.Selected)
        
        // 添加为tabBar的子控制器,并且包装导航控制器
        addChildViewController(UINavigationController(rootViewController: controller))
    }
}
